1. Technical Field
Present invention embodiments relate to processor provisioning, and more specifically, to processor provisioning for logically partitioned processors by way of a middleware system.
2. Discussion of the Related Art
Central Processing Unit (CPU) or processor provisioning is a common activity performed in modern computer systems to manage processing workload, e.g., in personal computing devices such PCs or tablets, blade servers, or mainframe type computers. In these applications, available processing capacity is allocated among a plurality of user or system applications and processes. For example, in a real-time operating system (RTOS) available processing power is allocated in units of time, such as time slices, as well as by a process priority. Furthermore, memory may be partitioned on a per process or processor basis, while the processing resources (e.g., processor cores) may be logically partitioned or divided into multiple instances. Processing and memory allocation may be controlled via control tokens or mutually exclusive (mutex) control for concurrent computing processes and memory allocation.
Traditional approaches to workload management have also been incorporated into middleware software systems (MSSs). Workload management capabilities are a key feature for middleware software systems that support mixed workload or multi-tenancy environments (e.g., database servers). Such systems may need to simultaneously support diverse applications from different areas in the enterprise with differing resource and service level requirements. As such, it is important to have the capability to be able to prioritize the execution of different applications in order to facilitate effective resource sharing and to ensure that their processing resources are adequately insulated from each other and able to meet their service level performance goals.
Although there are a multitude of workload management techniques that can indirectly affect the division of resources between workloads (including managing the number of concurrently executing requests and/or mechanisms that alter the priority of threads or processes executing different tasks), the capabilities that have been observed to provide the most predictable level of control and insulation are those that allow the user to exert direct control over the amount of CPU given to the different workloads running on the system. However, such systems do not adequately scale in middleware environments, for example, due to scheduling conflicts that arise as the number processes being serviced increases.